#ifndef MAINLOOP_H_
#define MAINLOOP_H_

#include "../Core/GameState/StateMachine.h"
#include "../Graphics/Presentation.h"
#include "./Simulation.h"

namespace GameLogic {

class MainLoop : Core::GameState::ChangeListener {
	Simulation* simulation_;
	Graphics::Presentation& presentation_;
	bool is_server_;
	Core::GameState::States state_;
public:
	/* Tworzy glowna petle gry operujaca na ... blabla. */
	MainLoop( Simulation* simulation, bool is_server );
	virtual ~MainLoop();

	void enterMainGameLoop();

	void notifyGameStateChange( Core::GameState::States state );
};

} //namespace GameLogic

#endif /* MAINLOOP_H_ */
